package cg.project.mapper;


import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import cg.project.pojo.Car;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface CarMapper {

    // 增加一条记录
    @Insert("INSERT INTO t_car (brand, model, price, image_path, description) VALUES (#{brand}, #{model}, #{price}, #{imagePath}, #{description})")
    int insertCar(Car car);

    // 根据ID删除一条记录
    @Delete("DELETE FROM t_car WHERE id = #{id}")
    int deleteCarById(int id);

    // 更新汽车信息
    @Update("UPDATE t_car SET brand = #{brand}, model = #{model}, price = #{price}, image_path = #{imagePath}, description = #{description} WHERE id = #{id}")
    int updateCar(Car car);

    // 根据ID查询一条记录
    @Select("SELECT * FROM t_car WHERE id = #{id}")
    Car selectCarById(int id);

    // 查询所有汽车
    @Select("SELECT * FROM t_car")
    List<Car> selectAllCars();

    // 根据关键字模糊查询汽车，只针对品牌或型号字段
    // 根据关键字精确查询汽车品牌，不进行模糊查询
    @Select("SELECT * FROM t_car WHERE brand = #{keyword}")
    List<Car> selectCarsByKeyword(String keyword);

    // 获取首页车辆列表（带分页）
    // 获取首页车辆列表（带分页）
    @Select("SELECT * FROM t_car LIMIT #{pageNum}, #{pageSize}")
    List<Car> selectHomePageCars(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);



    // 获取车辆列表（带分页）
    @Select("SELECT * FROM t_car LIMIT #{pageNum}, #{pageSize}")
    List<Car> selectCarList(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);




}